package cn.java71.dao;

import cn.java71.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface StudentDao {
    public Student get(long stuno);
    public int add(Student s);
    public int update(Student s);
    public List<Student> search(String name);
    //sname 作为模糊条件，enterdate时间作为起始条件
    public List<Student> search1(Map<String, Object> p);

    //注解参数名

    /**
     *
     * @param sname  学生姓名的模糊查找
     * @param start  入学时间的起点
     * @param end     入学时间查询的终点
     * @return
     */
    //arg0,arg1
    public List<Student> search2(@Param("pageNo") int pageNo, @Param("pageSize") int pageSize, @Param("sname") String sname, @Param("start") Date start, @Param("end") Date end);
    public int searchTotal(@Param("sname") String sname, @Param("start") Date start, @Param("end") Date end);

    //删除多个学生
    public int delM(@Param("stus") long[] stunos);

    public int del(@Param("stu") long s);
    //按照年龄段查找学生
    //1,18-20岁的，2，18以下，3，20以上，其他值,找年龄为null的
    public List<Student> search4(@Param("ageType") int type);

    //只查找部分列的功能,查询条件为模糊查找
    //Map key 是查询的列，value是查询的值
    public List<Student> searchPart(@Param("cols") String[] cols, @Param("params") Map<String, String> params);


    public int checkTelephone(String no);
}
